import java.util.*;

import java.io.*; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;

public class Supermarkt implements Serializable{
    // instance variables - replace the example below with your own
    private String naam;
    private double geld;
    private double vasteLasten;
    private boolean ingelogd;
    private ArrayList<Klant>klanten;
    private ArrayList<Werknemer>werknemers;
    private ArrayList<Afdeling>afdelingen;
    private ArrayList<Bon> bonnen;
    private ArrayList<Bon> adminBonnen;
    


    public Supermarkt(String naam, double geld)    {
       this.naam = naam;
       this.geld = geld;
       klanten = new ArrayList<Klant>();
       werknemers = new ArrayList<Werknemer>();
       afdelingen = new ArrayList<Afdeling>();
       bonnen = new ArrayList<Bon>();
       adminBonnen = new ArrayList<Bon>();
       vulKlanten();
       vulAfdelingen();
       vulProducten();
    }
    
    //Tel verdiende bedrag op bij de balans
    public void plusGeld( double plus ){
        geld += plus;
    }
    
    //geef vaste lasten\\
    public double getVasteLasten(){
        return vasteLasten;
    }
    
    public void setVasteLasten(double bedrag){
        vasteLasten = bedrag;
    }
    
    //Haal geld van belans af
    public void minGeld( double min ){
        geld -= min;
    }
    
    //Haalt geld op
    public double getGeld(){
        return geld;
    }
    
    public ArrayList<Bon> getBonnen(){
        return bonnen;
    }
    
    
    //Voeg een nieuwe klant toe op naam
    public void addKlant(String naam, Supermarkt supermarkt){
        Klant klant = new Klant( naam, supermarkt );
        klanten.add( klant );
    }
    
    //Maak een nieuw bonnetje
    public Bon addBon(){
        bonnen.add( new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() ) );
        return bonnen.get( bonnen.size()-1 );
    }
    
    //Maak een nieuw bonnetje voor admin (bij bestellen,nieuw product kopen)
    public Bon addAdminBon(){
        adminBonnen.add( new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() ) );
        return adminBonnen.get( adminBonnen.size()-1 );
    }
    
    //Voeg klant toe     
    public void addKlant(Klant klant){
        klanten.add( klant );
    }
    
    //Maak een nieuwe afdeling aan
    public void addAfdeling(String naam){
        Afdeling afdeling = new Afdeling( naam );
        afdelingen.add( afdeling );
        sorteerAfdeling();
    }
    
    public void verwijderAfdeling(String naam){
        boolean gevonden = false;
        for(Afdeling a : afdelingen){
            if(a.getAfdelingNaam().equalsIgnoreCase(naam)){
                afdelingen.remove( a );
                System.out.println(a.getAfdelingNaam()+" is succesvol verwijderd.");
                gevonden=true;
                break;
            }
        }
        if(!gevonden){
            System.out.println("Er is geen afdeling met die naam.");
        }
    }
    
    
    
    //Maak nieuwe werknemer aan
    public void addWerknemer(String naam, double loon){
        Werknemer w = new Werknemer(naam, loon);
        werknemers.add( w );
    }
    
    //Zoek een product op naam
    public Product zoekProduct(String naam){
        Product gezochteproduct = null;
        boolean gelukt = false;
        for (Afdeling a : afdelingen){
            if (!gelukt){
                gezochteproduct = a.zoekProduct(naam);
                if(gezochteproduct != null){
                    gelukt = true;
                }
            }
        }
        return gezochteproduct;
    }
    
    //Verander de verkoopprijs van een product
    public void setVerkoopPrijsProduct(String naam, double prijs){
        Product product = zoekProduct(naam);

        product.setVerkoopPrijs(prijs);
    }
    
    //Verander inkoopprijs van product
    public void setInkoopPrijsProduct(String naam, double prijs){
        Product product = zoekProduct(naam);

        product.setInkoopPrijs(prijs);
    }
    
    //aanbiedingen
    //Stel 50% korting in voor product(naam)    
    public void setKorting( String naam, double korting){
        Product product = zoekProduct(naam);
        product.setKorting(korting);
    }
    
    public void kortingWeg(Product product, double prijs1){
        product.kortingWeg(prijs1);
    }
    
    //Stel 2voor1 korting in voor product(naam) 
    public void setKortingTweeVoorEen(String naam){
        Product product = zoekProduct(naam);
        product.setKortingTweeVoorEen();
    }
    
    
    //Haalt lijst met klanten op
    public ArrayList<Klant> getKlanten(){
        return klanten;
    }
    
    //Haalt alle afdelingen op
    public ArrayList<Afdeling> getAfdelingen(){
        return afdelingen;
    }
    
    //Vraag producten op uit alle afdelingen
    public ArrayList<Product> getProducten(){
        ArrayList<Product> producten = new ArrayList<Product>();
        for (Afdeling afdeling : afdelingen){
            for (Product product : afdeling.vraagProductenOp() ){
                producten.add( product );
            }
        }
        return producten;
    }
            
    //Zoek een klant op op naam
    public Klant zoekKlant(String naam){
        Klant gezochteKlant = null;
        for (Klant k : klanten){            
            if(k.getNaam().equalsIgnoreCase(naam)){
                gezochteKlant = k;
            }
        }
        return gezochteKlant;
    }
    
    public void overDatum(){
        ArrayList<Bonregel> bonregels = new ArrayList<Bonregel>();
        Bonregel regel = null;
        for(Afdeling a: afdelingen){
            ArrayList<Bonregel> afgeboekten = a.overDatum();
            for(int i=0;i<afgeboekten.size();i++){
                regel = afgeboekten.get(i);
                bonregels.add( regel );
            }
        }
        if(bonregels.size() != 0){
            Bon bon = new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() );
            bon.setTitel("afboekingen");
            for(Bonregel b: bonregels){
                geld -= b.getAantal() * b.getPrijs();
                bon.addBonregel( b );
            }
            adminBonnen.add( bon );
        }
    }
    
    //Vraag een product op, op naam
    public Product vraagProductOp(String naam){
            Product p = zoekProduct(naam);
            return p;
    }
    
    //Vraag gegevens van alle klanten op
    public void vraagGegevensKlanten(){
        for(Klant k : klanten){
            System.out.println(k.toString());
        }
    }
    
    public void vasteLastenSysteem(){
        if(Datum.huidigeDag() == 1 && !ingelogd ){
            geld -= vasteLasten;
            ingelogd = true;
        }
        else if(Datum.huidigeDag() != 1){
            ingelogd = false;
        }
    }
    
    //Vraag gegevens van een klant op op naam
    public void vraagGegevensKlant(String naam){
        double totaal= 0.0;
        for(Klant k : klanten){
            if(k.getNaam().equalsIgnoreCase(naam)){
                System.out.println("\n" + k.toString() );
                System.out.println("De Meest bezochte afdeling van " + k.getNaam()+" is " + topAfdelingKlant(k.getNaam()).getAfdelingNaam() );
                for(Bon b : bonnen){
                    if(b.getTitel().equalsIgnoreCase(naam) && !(b.getTotaal() == 0.0)  ){
                        totaal +=b.getTotaal();
                        System.out.println("\n" + b.toString() );
                    }
                }
                System.out.printf("%n" + k.getNaam()+" heeft voor %.2f gewinkeld %n" ,totaal );
            }
        } 
    }
    
    //Betaal loon uit aan alle werknemers
    public void BetaalLoon(){
        for(Werknemer w : werknemers){
            geld -= w.getMaandLoon();
        }
    }
    
    //Vraag product uit de winkel 
    public Product vraagProductOpWinkel(String naam){
        Product product = null;
        boolean gevonden = false;

        for ( Afdeling afdeling : afdelingen ){
            if (!gevonden ){
                product = zoekProduct(naam);
                gevonden = true;
            }
        }
        return product;
    }
    
    //bereken omzet dmv bonnetjes en haal deze op
    public double getOmzet(){
        double omzet = 0.0;
        for(Bon bon : bonnen){
            omzet += bon.getTotaal();
        }
        return omzet;
    }
    
    //Bereken kosten dmv adminbonnetjes en vaste kosten
    public double getKosten(){
        double kosten = 0.0;
        for(Werknemer werknemer : werknemers){
            kosten += werknemer.getMaandLoon();
        }
        for (Bon bon : adminBonnen){
            kosten += bon.getTotaal();
        }
        kosten += vasteLasten;
        return kosten;
    }
    
    //Bereken winst (omzet-kosten)
    public double getWinst(){
        double winst = 0.0;
        winst = getOmzet() - getKosten();
        return winst;
    }
    
    //Vraag verkoopgegevens op per periode(begindatum,einddatum)
    public void verkoopGegevensPerPeriode(Datum begindatum, Datum einddatum){
        for(Bon bon : bonnen){
            if(!begindatum.vergelijkDatum(bon.getDatum()) && einddatum.vergelijkDatum(bon.getDatum())){
                System.out.println(bon.toString());
            }
        }
    }

    public void adminBonnenPerPeriode(Datum begindatum, Datum einddatum){
        
        for(Bon bon : adminBonnen){
            if(!begindatum.vergelijkDatum(bon.getDatum()) && einddatum.vergelijkDatum(bon.getDatum())){
                System.out.println(bon.toString());                    
            }
        }
    }
    

    
    //Voorlopig toevoegen van test => klanten, afdelingen, producten
    private void vulKlanten(){     
        addKlant("Henk",this);     
        addKlant("Jos",this);     
        addKlant("Bert",this);     
        addKlant("Geert",this);    
        addKlant("Sjaak",this);     
    }              
    private void vulAfdelingen(){      
        addAfdeling("Zuivel");       
        addAfdeling("Alcoholen");    
        addAfdeling("Snoep");        
        addAfdeling("Groente"); 
        addAfdeling("Brood");
        addAfdeling("Diepvries");
    }              
    
    private void vulProducten(){   
        Datum datum = null;        
        addNieuwProductTest( "Bier", 1.05, 2.10, 100, datum = new Datum( 1, 1, 2010 ), getAfdeling( "Alcoholen" )  );
        addNieuwProductTest( "Whiskey", 7.10, 10.50, 19, datum = new Datum( 30, 10, 2014 ), getAfdeling( "Alcoholen" )  );
        addNieuwProductTest( "Vodka", 8.00, 11.10, 12, datum = new Datum( 12, 5, 2012 ), getAfdeling( "Alcoholen" )  );        
        addNieuwProductTest( "Malibu", 6.20, 8.50, 15, datum = new Datum( 25, 8, 2012 ), getAfdeling( "Alcoholen" )  ); 
        addNieuwProductTest( "Bacardi", 4.20, 6.50, 11, datum = new Datum( 25, 8, 2012 ), getAfdeling( "Alcoholen" )  );
        addNieuwProductTest( "Malibu", 6.20, 8.50, 15, datum = new Datum( 25, 8, 2012 ), getAfdeling( "Alcoholen" )  );
        addNieuwProductTest( "Krat Bier", 6.20, 14.50, 15, datum = new Datum( 25, 8, 2012 ), getAfdeling( "Alcoholen" )  );
        
        addNieuwProductTest( "Melk", 1.50, 3.10, 10, datum = new Datum( 15, 10, 2011 ), getAfdeling( "Zuivel" ) );      
        addNieuwProductTest( "Baby", 1.50, 3.00, 10, datum = new Datum( 15, 9, 2011 ), getAfdeling( "Zuivel" ) );
        addNieuwProductTest( "Vla",  1.80, 2.60, 18, datum = new Datum( 17, 12, 2010), getAfdeling( "Zuivel" )  );
        addNieuwProductTest( "Pudding", 2.20,  5.50, 55, datum = new Datum( 25, 5, 2015 ), getAfdeling( "Zuivel" )  );
        addNieuwProductTest( "Fristi", 2.05, 2.10, 14, datum = new Datum( 12, 4, 2011 ), getAfdeling( "Zuivel"  )  );
        addNieuwProductTest( "Yoghurt", 2.05, 2.30, 14, datum = new Datum( 12, 4, 2011 ), getAfdeling( "Zuivel"  )  );
        
        addNieuwProductTest( "Lolly", 1.05, 2.10, 10, datum = new Datum( 15, 9, 2011 ), getAfdeling( "Snoep"  ) );    
        addNieuwProductTest( "Taart", 4.10, 6.00, 20, datum = new Datum( 22, 10, 2011 ), getAfdeling( "Snoep" ) );      
        addNieuwProductTest( "Drop", 1.10, 1.40, 23, datum = new Datum( 23, 2, 2012 ),  getAfdeling( "Snoep" ) );  
        addNieuwProductTest( "Hagelslag", 1.50, 2.30, 13, datum = new Datum( 13, 9, 2013 ),  getAfdeling( "Snoep" )  );      
        addNieuwProductTest( "Worst", 1.85, 2.20, 19, datum = new Datum( 11, 9, 2011 ),  getAfdeling( "Snoep"  ) );                
        addNieuwProductTest( "Kauwgom", 3.25, 4.40, 27, datum = new Datum( 12, 10, 2011 ), getAfdeling( "Snoep" ) );
        
        addNieuwProductTest( "Boontjes", 0.80, 1.00, 44, datum = new Datum( 22, 11, 2011 ),  getAfdeling( "Groente"  ) );     
        addNieuwProductTest( "Wortels", 0.99, 1.70, 20, datum = new Datum( 6, 2, 2012 ),  getAfdeling( "Groente" )  );     
        addNieuwProductTest( "Nasi", 1.85, 2.50, 20, datum = new Datum( 21, 1, 2012 ),  getAfdeling( "Groente" ) );             
        addNieuwProductTest( "Sla", 1.00, 1.20, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Groente" ) );
        addNieuwProductTest( "Brocolli", 1.00, 1.40, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Groente" ) );
        addNieuwProductTest( "appel", 3.00, 3.40, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Groente" ) );
        
        addNieuwProductTest( "volkoren", 1.00, 1.20, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Brood" ) );
        addNieuwProductTest( "Afbak brood", 0.90, 0.95, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Brood" ) );
        addNieuwProductTest( "Croissant", 1.00, 2.20, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Brood" ) );
        addNieuwProductTest( "Stokbrood", 1.00, 1.40, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Brood" ) );
        
        addNieuwProductTest( "Ijs", 1.30, 1.40, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Diepvries" ) );
        addNieuwProductTest( "Ijs-taart", 1.50, 1.70, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Diepvries" ) );
        addNieuwProductTest( "Pizza", 1.90, 2.10, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Diepvries" ) );
        addNieuwProductTest( "Patat", 1.90, 1.99, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Diepvries" ) );
        addNieuwProductTest( "Frikandel", 0.30, 1.00, 12, datum = new Datum( 12, 4, 2012 ),  getAfdeling( "Diepvries" ) );
    }  
   
    //Testmethode: Voeg nieuw product toe in winkel
    public void addNieuwProductTest(String naam, double inkoopPrijs, double verkoopPrijs, int voorraad, Datum datum, Afdeling afdeling){
        Product product = new Product(naam,inkoopPrijs, verkoopPrijs, voorraad, datum);
        product.addVoorraadAfdeling(voorraad);
        for(Afdeling a : afdelingen){
            if(a.equals(afdeling)){
                a.addNieuwProduct(product);
            }
        }
        Bon bon = new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() );
        bon.addBonregel( new Bonregel(voorraad, product, inkoopPrijs ) );
        bon.setTitel("Inkoop nieuw product");
        bon.setTotaal( voorraad * inkoopPrijs );
        adminBonnen.add( bon );
    }
   
    //Voeg compleet nieuw product toe aan assortiment
    public void addNieuwProduct(String naam, double inkoopPrijs, double verkoopPrijs, int voorraadMagazijn, Datum datum, Afdeling afdeling){
        Product product = new Product(naam,inkoopPrijs, verkoopPrijs, voorraadMagazijn,datum);
        for(Afdeling a : afdelingen){
            if(a.equals(afdeling)){
                a.addNieuwProduct(product);
            }
        }
        Bon bon = new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() );
        bon.addBonregel( new Bonregel(voorraadMagazijn, product, inkoopPrijs ) );
        bon.setTitel("Inkoop nieuw product");
        bon.setTotaal( voorraadMagazijn * inkoopPrijs );
        adminBonnen.add( bon );
    }
    
    //Verwijderd het product met opgegeven naam
    public void verwijderProduct(String naam){
        boolean gevonden=false;
        for(Afdeling a : afdelingen){
            if(a.bevatProduct(naam)){
                a.verwijderProduct(naam);
                gevonden=true;
            }
        }
        if(!gevonden){
            System.out.println("Het product is niet gevonden.");
        }
    }
    
    //Bestaand product bijbestellen(nieuwe lading)
    public void bestelProduct(Product product, int besteldeAantal, Datum datum){
        for(Afdeling a : afdelingen){
            if(a.bevatProduct(product.getNaam())){
                a.bestelProduct(product, besteldeAantal, datum);
            }
        }
        Bon bon = new Bon( Datum.huidigeDag(), Datum.huidigeMaand(), Datum.huidigeJaar() );
        bon.addBonregel( new Bonregel(besteldeAantal, product, product.getInkoopPrijs() ) );
        bon.setTitel("Inkoop product");
        bon.setTotaal( besteldeAantal * product.getInkoopPrijs() );
        adminBonnen.add( bon );
    }
    //Leg product vanuit magazijn in schappen
    public void legProductInSchap(String naam, int aantal){
        for(Afdeling a : afdelingen){
            if(a.bevatProduct(naam)){
                a.legProductInSchap(naam, aantal);
            }
        }
    }
    
    public double getInkoopPrijs(Product product){
          for(Afdeling a : afdelingen){
            if(a.bevatProduct(product.getNaam())){
                return a.getInkoopPrijs(product);
            }
        }
        return 0.0;
    }
    
    //Vraag afdeling op
    public Afdeling getAfdeling(String naam){
        for(Afdeling a : afdelingen){
            if(a.getAfdelingNaam().equalsIgnoreCase(naam)){
                return a;
            }
        }
        return null;
    }
    
    //Haalt product uit schap
    public void minVoorraadAfdeling(Product product, int aantal, Datum datum){
        product.minVoorraadAfdeling( aantal, datum);
    }
           
    //Legt product in schap zonder dat magazijn word aangepast
    public void plusVoorraadAfdeling(Product product, int aantal, Datum datum){
        for(Afdeling a : afdelingen){
            if(a.bevatProduct(naam)){
                a.plusAantalSchappen(product, aantal, datum);
            }
        }
    }
    
    //Product bijvoegen
    public void plusAantal(Product product, int aantal){
        for(Afdeling a : afdelingen){
            if(a.bevatProduct(product.getNaam())){
                a.plusAantal(product, aantal);
            }
        }
    } 
    
    public void verwijderVoorraad(){
        for (Afdeling a : afdelingen){
            a.verwijderVoorraad();
        }
    }
    
    //Zoekt bij een klant de top3 van afdeling waar hij het vaakste wat koopt
    public Afdeling topAfdelingKlant(String naam){
        ArrayList<Bon> klantbonnen = new ArrayList<Bon>();
        ArrayList<Product> klantproducten = new ArrayList<Product>();
        int[] topafdeling;
        topafdeling = new int[afdelingen.size()];   
        int maxWaarde = topafdeling[0];
        int index = 0;
        for(int i = 0; i <= afdelingen.size()-1; i++){
            topafdeling[i] = 0;
        }
        //Zoek de bonnen van ingevoerde klant
        for(Bon bon : bonnen){
            if(bon.getTitel().equalsIgnoreCase(naam)){
                klantbonnen.add(bon);
            }
        }
        //Haal alle producten op die klant gekocht heeft
        for(Bon bon : klantbonnen){
           for(Bonregel bonregel : bon.getBonregels()){
               klantproducten.add(bonregel.getProduct());
            }
        }
        //Afdeling bij de producten zoeken
        for(Product product : klantproducten){
            for(int i=0; i<afdelingen.size(); i++){
                Afdeling a = afdelingen.get(i);
                if(a.bevatProduct(product.getNaam())){
                    topafdeling[i] += 1 ;
                }
            }
        }
        //Pak grootste waarde met bijbehorende index
        for(int i = 0; i < topafdeling.length ; i++){  
             if(topafdeling[i] > maxWaarde){
                 index = i;
                 maxWaarde = topafdeling[i];  
             }  
        }  
        //return meest bezochte afdeling
        return afdelingen.get(index);
    }  
    
    public void productVerkoopStatistieken(Datum begindatum, Datum einddatum){
        ArrayList<Bonregel> statistieken = new ArrayList<Bonregel>();
        ArrayList<String> namen = new ArrayList<String>();
        for(Bon bon : bonnen){
            if(!begindatum.vergelijkDatum(bon.getDatum()) && einddatum.vergelijkDatum(bon.getDatum())){
                ArrayList<Bonregel> regels = bon.getBonregels();
                for(Bonregel regel: regels){
                    if(!namen.contains( regel.getNaam() ) ){
                        namen.add( regel.getNaam() );
                        statistieken.add( regel );
                    }
                    else{
                        for(Bonregel bonregel: statistieken){
                            if( regel.getNaam().equalsIgnoreCase( bonregel.getNaam() ) ){
                                bonregel.addAantal( regel.getAantal() );
                                bonregel.addPrijs( regel.getPrijs() );
                            }
                        }
                    }
                }
            }
        }
        sorteerNamen(statistieken);
        for( Bonregel regel: statistieken ){
            System.out.printf( regel.getAantal() + "x\t" + regel.getNaam() + "\t\t %.2fEUR\ttotaal: %.2fEUR%n", regel.getPrijs(), (regel.getAantal()*regel.getPrijs() ));
        }
    }
    
    public void sorteerNamen(ArrayList<Bonregel> producten){
           int j;
        boolean flag = true;  // will determine when the sort is finished
        Bonregel temp;
        while ( flag ){
            flag = false;
            for ( j = 0;  j < producten.size() - 1;  j++ ){
                if ( producten.get( j ).getNaam().compareToIgnoreCase(producten.get( j+1).getNaam() ) > 0 ){                                             
                    // ascending sort
                    temp = producten.get(j);
                    producten.set(j, producten.get( j+1) );     // swapping
                    producten.set(j+1,  temp);
                    flag = true;
                }
            }
        } 
    }
    
    public void sorteerAfdeling(){
        int j;
        boolean flag = true;  // will determine when the sort is finished
        Afdeling temp;
        while ( flag ){
            flag = false;
            for ( j = 0;  j < afdelingen.size() - 1;  j++ ){
                if ( afdelingen.get( j ).getAfdelingNaam().compareToIgnoreCase(afdelingen.get( j+1).getAfdelingNaam() ) > 0 ){                                             
                    // ascending sort
                    temp = afdelingen.get(j);
                    afdelingen.set(j, afdelingen.get( j+1) );     // swapping
                    afdelingen.set(j+1,  temp);
                    flag = true;
                }
            }
        } 
    }
    
    /**
     * Roy's
     * Rampen sectie.
     * ^_^
    */
   
    //Bepaald of er een ramp triggert of niet.
    public boolean triggerRamp(Klant klant){
        double random = Math.random()*10;
        if(random<0.9){
            double randomRamp=Math.random()*10;
            //Zoja, welke
            if(randomRamp<1){
                brand();
            }
            else{
                bestolen(klant);
            }
            return true;
        }
        return false;
    }
    
    //Code voor het bereken van brandschade en de kans op een succesvolle brand.
    public void brand(){
        TuiHelper.clear();
        double verlies=0.0;
        for(Afdeling a : afdelingen){
            double random = Math.random()*10;
            if(random < 3){
                verlies+=a.brand();
            }
        }
        if(verlies==0.0){
            String bijnaBrand = "Er is een klein brandje begonnen, \n";
            bijnaBrand += "maar dankzij snel ingrijpen van de medewerkers is dit verholpen voordat producten beschadigd konden raken.";
            bijnaBrand += "\nU kunt weer veilig verder winkelen.";
            System.out.println(bijnaBrand);
        }
        else{
            String brand = "De brand heeft voor ";
            brand += String.format("%.2f",verlies);
            brand += "schade veroorzaakt. \n";
            brand += "De medewerkers hebben de brand verholpen. U kunt weer verder winkelen.";
            System.out.println(brand);
        }
    }
    
    //Code die het berekent of er wel of niet iets uit je mandje word gejat!
    public void bestolen(Klant klant){
        TuiHelper.clear();
        klant.wordBestolen();
    }
    
    public void verkoopGegevensWegschrijven(){
        for(Afdeling afdeling : afdelingen){
            afdeling.verkoopGegevensWegschrijven(bonnen);
        }
    }
}

